Uitwisselprofiel Ministerie van VWS Beleidsontwikkeling over Macro Economische Vraagstukken en Arbeidsmarkt

Over Uitwisselprofiel Ministerie van VWS Beleidsontwikkeling over Macro Economische Vraagstukken en Arbeidsmarkt


Publicatiedatum:
19-11-2025

Inwerkingtreding:
19-11-2025

2.24. Wat is het percentage instroom van zorggerelateerd personeel in loondienst?

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: MEVA 2.24
2# Parameters: ?jaar
3# Ontologie: versie 3.0 of nieuwer
4
5PREFIX onz-g:   <http://purl.org/ozo/onz-g#>
6PREFIX onz-pers:<http://purl.org/ozo/onz-pers#>
7PREFIX onz-org: <http://purl.org/ozo/onz-org#>
8PREFIX xsd:     <http://www.w3.org/2001/XMLSchema#>
9
10SELECT
11  ?Periode
12  ('Organisatie' AS ?Indeling)
13  ?Aantal_PIL_met_zorgfunctie
14  ?Aantal_ingestroomde_PIL_met_zorgfunctie
15  ?Percentage_Instroom
16WHERE {
17  {
18    # Kwartaalgegevens
19    SELECT
20      ?Periode
21      (SUM(?noemer_waarde) AS ?Aantal_PIL_met_zorgfunctie)
22      (SUM(?teller_waarde) AS ?Aantal_ingestroomde_PIL_met_zorgfunctie)
23      (IF(SUM(?noemer_waarde) = 0,
24          'Ongedefinieerd',
25          ROUND( (100.0 * SUM(?teller_waarde) / SUM(?noemer_waarde)) * 100 ) / 100
26         ) AS ?Percentage_Instroom)
27    WHERE {
28      {
29        SELECT
30          ?Periode
31          ?werknemer
32          (IF(MAX(?op_peildatum_eerder_bool) = 1, 1, 0) AS ?noemer_waarde)
33          (IF(MAX(?op_peildatum_eerder_bool) = 0 && MAX(?op_peildatum_later_bool) = 1, 1, 0) AS ?teller_waarde)
34        WHERE {
35          # Stel hier het gewenste jaar in:
36#          BIND(2024 AS ?jaar)
37          VALUES ?Periode { 'Q1' 'Q2' 'Q3' 'Q4' }
38
39          # Uw BIND-patroon voor datums
40          BIND(IF(?Periode = 'Q1', xsd:date(CONCAT(STR(?jaar), '-01-01')),
41               IF(?Periode = 'Q2', xsd:date(CONCAT(STR(?jaar), '-04-01')),
42               IF(?Periode = 'Q3', xsd:date(CONCAT(STR(?jaar), '-07-01')),
43               IF(?Periode = 'Q4', xsd:date(CONCAT(STR(?jaar), '-10-01')),
44               '')))) AS ?peildatum_eerder)
45          BIND(?peildatum_eerder + 'P3M'^^xsd:duration AS ?peildatum_later)
46
47          # ArbeidsOvereenkomst + afspraken MET zorgverlenersfunctie
48          ?overeenkomst
49            a onz-pers:ArbeidsOvereenkomst ;
50            onz-pers:heeftOpdrachtnemer ?werknemer ;
51            onz-g:hasPart ?overeenkomst_afspraak .
52          ?overeenkomst_afspraak
53            a onz-pers:WerkOvereenkomstAfspraak ;
54            onz-g:isAbout ?functie ;
55            onz-g:startDatum ?start_afspraak .
56          OPTIONAL { ?overeenkomst_afspraak onz-g:eindDatum ?eind_afspraak . }
57
58          # Selecteer alleen zorgverlenerfuncties
59          ?functie a onz-pers:ZorgverlenerFunctie .
60
61          # Geldig op eerste dag van het kwartaal (noemer) - met uw variabelen
62          BIND( IF(?start_afspraak <= ?peildatum_eerder && (!BOUND(?eind_afspraak) || ?eind_afspraak >= ?peildatum_eerder), 1, 0) AS ?op_peildatum_eerder_bool )
63
64          # Geldig op eerste dag van het volgende kwartaal (teller) - met uw variabelen
65          BIND( IF(?start_afspraak <= ?peildatum_later  && (!BOUND(?eind_afspraak) || ?eind_afspraak >= ?peildatum_later ), 1, 0) AS ?op_peildatum_later_bool )
66        }
67        GROUP BY ?Periode ?werknemer
68      }
69    }
70    GROUP BY ?Periode
71  }
72  UNION
73  {
74    # Gemiddelde per jaar
75    SELECT
76        ('Gemiddelde per jaar' AS ?Periode)
77      (ROUND(AVG(?Aantal_PIL_met_zorgfunctie_avg) * 100) / 100 AS ?Aantal_PIL_met_zorgfunctie)
78      (ROUND(AVG(?Aantal_ingestroomde_PIL_met_zorgfunctie_avg) * 100) / 100 AS ?Aantal_ingestroomde_PIL_met_zorgfunctie)
79      (ROUND(AVG(?Percentage_Instroom_avg) * 100) / 100 AS ?Percentage_Instroom)
80    WHERE {
81      {
82        SELECT
83          ?Periode_avg
84          (SUM(?noemer_waarde) AS ?Aantal_PIL_met_zorgfunctie_avg)
85          (SUM(?teller_waarde) AS ?Aantal_ingestroomde_PIL_met_zorgfunctie_avg)
86          (IF(SUM(?noemer_waarde) = 0,
87              0, # Gebruik 0 voor het gemiddelde ipv 'Ongedefinieerd'
88              (100.0 * SUM(?teller_waarde) / SUM(?noemer_waarde))
89             ) AS ?Percentage_Instroom_avg)
90        WHERE {
91          {
92            SELECT
93              ?Periode_avg
94              ?werknemer
95              (IF(MAX(?op_peildatum_eerder_bool) = 1, 1, 0) AS ?noemer_waarde)
96              (IF(MAX(?op_peildatum_eerder_bool) = 0 && MAX(?op_peildatum_later_bool) = 1, 1, 0) AS ?teller_waarde)
97            WHERE {
98              # Stel hier het gewenste jaar in (moet identiek zijn aan hierboven):
99#              BIND(2024 AS ?jaar)
100              VALUES ?Periode_avg { 'Q1' 'Q2' 'Q3' 'Q4' }
101
102              BIND(IF(?Periode_avg = 'Q1', xsd:date(CONCAT(STR(?jaar), '-01-01')),
103                   IF(?Periode_avg = 'Q2', xsd:date(CONCAT(STR(?jaar), '-04-01')),
104                   IF(?Periode_avg = 'Q3', xsd:date(CONCAT(STR(?jaar), '-07-01')),
105                   IF(?Periode_avg = 'Q4', xsd:date(CONCAT(STR(?jaar), '-10-01')),
106                   '')))) AS ?peildatum_eerder)
107              BIND(?peildatum_eerder + 'P3M'^^xsd:duration AS ?peildatum_later)
108
109              # ArbeidsOvereenkomst + afspraken MET zorgverlenersfunctie
110              ?overeenkomst
111                a onz-pers:ArbeidsOvereenkomst ;
112                onz-pers:heeftOpdrachtnemer ?werknemer ;
113                onz-g:hasPart ?overeenkomst_afspraak .
114              ?overeenkomst_afspraak
115                a onz-pers:WerkOvereenkomstAfspraak ;
116                onz-g:isAbout ?functie ;
117                onz-g:startDatum ?start_afspraak .
118              OPTIONAL { ?overeenkomst_afspraak onz-g:eindDatum ?eind_afspraak . }
119              
120              # Selecteer alleen zorgverlenerfuncties
121              ?functie a onz-pers:ZorgverlenerFunctie .
122
123              # Geldig op eerste dag van het kwartaal (noemer)
124              BIND( IF(?start_afspraak <= ?peildatum_eerder && (!BOUND(?eind_afspraak) || ?eind_afspraak >= ?peildatum_eerder), 1, 0) AS ?op_peildatum_eerder_bool )
125
126              # Geldig op eerste dag van het volgende kwartaal (teller)
127              BIND( IF(?start_afspraak <= ?peildatum_later  && (!BOUND(?eind_afspraak) || ?eind_afspraak >= ?peildatum_later ), 1, 0) AS ?op_peildatum_later_bool )
128            }
129            GROUP BY ?Periode_avg ?werknemer
130          }
131        }
132        GROUP BY ?Periode_avg
133      }
134    }
135  }
136}
137ORDER BY 
138  (IF(?Periode = 'Gemiddelde per jaar', 5,
139     IF(?Periode = 'Q1', 1,
140        IF(?Periode = 'Q2', 2,
141           IF(?Periode = 'Q3', 3, 4)))))